package i_Polymorphism;

/**
 * 多态性测试类
 * 本类用于演示Java语言中的多态性特性。
 */
public class Test02 {
    public static void main(String[] args) {
        // 创建一个Dog对象，并通过该对象调用eat方法，演示多态性中的向上转型
        Animal a = new Dog();
        a.eat();

        // 重新赋值，创建一个Cat对象，并调用其eat方法，进一步演示多态性
        a = new Cat();
        a.eat();

        ////////////////////////////////////////
        // 使用不同类型的动物对象调用method方法，进一步展示多态性在方法中的应用
        Dog dog = new Dog();
        method(dog);
        Cat cat = new Cat();
        method(cat);
    }

    /*
    * 方法说明：通过父类类型的引用调用子类的方法，体现多态性的特点。
    * @param a 动物类型引用，可指向任何Animal类的子类对象。
    * 该方法无返回值。
    * */
    public static void method(Animal a)
    {
        a.eat(); // 通过父类引用调用子类的eat方法，表现出多态性
    }
}
